[][src]Crate daggy

daggy is a directed acyclic graph data structure library.

The most prominent type is Dag - a wrapper around petgraph's Graph data structure, exposing a refined API targeted towards directed acyclic graph related functionality.

The Walker trait defines a variety of useful methods for traversing any graph type. Its methods behave similarly to iterator types, however Walkers do not require borrowing the graph. This means that we can still safely mutably borrow from the graph whilst we traverse it.

Re-exports

pub use petgraph;

Modules

stable_dag

This module includes the implementation of the StableDag data structure. The StableDag has a similar functionality to the Dag data structure, but it does not invalidate node indices when a node is removed.

walker

Walker is a trait providing a variety of useful methods for traversing graph types.

Structs

Children

A Walker type that can be used to step through the children of some parent node.

Dag

A Directed acyclic graph (DAG) data structure.

EdgeIndex

Edge identifier.

EdgeIndices

An iterator yielding multiple EdgeIndexs, returned by the Graph::add_edges method.

EdgeWeightsMut

Iterator yielding mutable access to all edge weights.

NodeIndex

Node identifier.

NodeWeightsMut

Iterator yielding mutable access to all node weights.

Parents

A Walker type that can be used to step through the parents of some child node.

WouldCycle

An error returned by the Dag::add_edge method in the case that adding an edge would have caused the graph to cycle.

Traits

Walker

A walker is a traversal state, but where part of the traversal information is supplied manually to each next call.

Type Definitions

Edges

An iterator yielding all edges to/from some node.

RawEdges

Read only access into a Dag's internal edge array.

RawNodes

Read only access into a Dag's internal node array.

RecursiveWalk

An alias to simplify the Recursive Walker type returned by Dag.